
package com.wk.provider;

import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.wk.commons.AppException;
import com.wk.commons.Constants;




/**
 * rest easy 社区应用异常统一处理，采用error code + error message方式返回
 * error code与http status code规则一致：
 * 2** - 成功
 * 4** - 表示请求参数错误
 * 5** - 表示后台程序执行错误
 * 
 * @author yaoyasong
 * @version 1.0 2015年8月11日
 * @since 1.0
 */
@Provider
public class AppRestExceptionProvider implements ExceptionMapper<AppException>{
	private Log log = LogFactory.getLog(AppRestExceptionProvider.class);

	@Override
	public Response toResponse(AppException e) {
		if (Constants.IS_DEVELOP_MODE) {
			log.error(e.getMessage(),e);
		} else {
			log.error(e.getMessage());
		}
		
		return Response.status(e.getCode()).entity(e.getMessage()).build();
	}

}
